#ifndef _POWERMODEL_H_
#define _POWERMODEL_H_

#include <stdlib.h>
#include <stdio.h>

//This class defines the abstract PowerModel interface
class PowerModel{

public:

  class QueryResult{
    public:
      bool dead;
  };
  QueryResult *queryResult;

  PowerModel(){

    queryResult = new QueryResult();
    queryResult->dead = false;

  }
  virtual char *Identify() = 0;
  virtual void dumpStats(FILE *f) = 0;

  virtual QueryResult *tick(unsigned long currentTick) = 0;
  virtual QueryResult *tick(unsigned long currentTick, float powerInWatts) = 0;


};

#endif
